// /*******************************************************************************
//  * Copyright 2012-2018 Esri
//  *
//  *  Licensed under the Apache License, Version 2.0 (the "License");
//  *  you may not use this file except in compliance with the License.
//  *  You may obtain a copy of the License at
//  *
//  *  http://www.apache.org/licenses/LICENSE-2.0
//  *
//  *   Unless required by applicable law or agreed to in writing, software
//  *   distributed under the License is distributed on an "AS IS" BASIS,
//  *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//  *   See the License for the specific language governing permissions and
//  *   limitations under the License.
//  ******************************************************************************/

#if WPF || WINDOWS_XAML
using Esri.ArcGISRuntime.Mapping.FeatureForms;

namespace Esri.ArcGISRuntime.Toolkit.Primitives
{
    [TemplatePart(Name = FieldInputName, Type = typeof(ContentControl))]
    public partial class FieldFormElementView : Control
    {
        private const string FieldInputName = "FieldInput";
        private DataTemplateSelector? InputTemplateSelector;

        /// <inheritdoc />
#if WINDOWS_XAML
        protected override void OnApplyTemplate()
#else
        public override void OnApplyTemplate()
#endif
        {
            base.OnApplyTemplate();
            var content = GetTemplateChild(FieldInputName) as ContentControl;
            if (content != null)
            {
                if (InputTemplateSelector == null)
                    InputTemplateSelector = new FieldTemplateSelector(this);
                content.ContentTemplateSelector = InputTemplateSelector;
            }
            UpdateErrorMessages();
        }
    }
}
#endif